var superEggDrop = function (K, N) {
    // m 最多不会超过 N 次（线性扫描）
    // 初始化一个 (K+1)(N+1) 的矩阵
    let dp = new Array(K + 1);

    // base case:
    // dp[0][..] = 0
    // dp[..][0] = 0
    // 初始化数组都为 0
    for (let i = 0; i < K + 1; i++) {
        dp[i] = new Array(N + 1);
        dp[i].fill(0, 0, N + 1);
    }

    let m = 0;
    while (dp[K][m] < N) {
        m++;
        for (let k = 1; k <= K; k++) {
            dp[k][m] = dp[k][m - 1] + dp[k - 1][m - 1] + 1;
        }
    }
    return m;
};